package com.wa.constants;

import java.util.HashMap;
import java.util.Map;

/**
 * bom协同工具通信包类型
 *
 * @author recharde.li
 * @create 2019-09-03
 */
public interface BomWebSocketPackageTypeConstant {

    /**
     * 普通文本包
     */
    int WEB_SOCKET_PACKAGE_COMMON_MESSAGE = 1;

    /**
     * 系统支持websocket包类型消息包
     */
    int WEB_SOCKET_PACKAGE_TYPE_MESSAGE = 2;

    /**
     * app信息消息包
     */
    int WEB_SOCKET_APP_INFORMATION_MESSAGE = 3;

    /**
     * 心跳检测测试消息包
     */
    int WEB_SOCKET_PING_MESSAGE = 10;

    /**
     * 心跳检测响应消息包
     */
    int WEB_SOCKET_PONG_MESSAGE = 20;

    /**
     * 系统匹配包
     */
    int WEB_SOCKET_SYSTEM_MATCH_MESSAGE = 30;

    /**
     * 未读消息统计包
     */
    int WEB_SOCKET_UNREAD_MESSAGE_COUNT_MESSAGE = 40;

    /**
     * 通知消息包
     */
    int WEB_SOCKET_NOTIFICATION_MESSAGE = 50;

    /**
     * 评论消息包
     */
    int WEB_SOCKET_COMMENT_NOTIFICATION_MESSAGE = 60;

    /**
     * 业务请求采购报价消息包
     */
    int WEB_SOCKET_BUSINESS_REQUEST_PURCHASE_QUOTE_NOTIFICATION_MESSAGE = 70;

    /**
     * 采购报价给销售消息包
     */
    int WEB_SOCKET_PURCHASE_FINISHED_QUOTATION_MESSAGE = 80;

    /**
     * 信息补充请求消息
     */
    int WEB_SOCKET_BOM_INFORMATION_COMPLEMENT_REQUEST_MESSAGE = 90;

    /**
     * 报价未完成提醒
     */
    int WEB_SOCKET_QUOTATION_UN_COMPLETE_REMIND_MESSAGE = 100;

    /**
     * 询价关闭消息
     */
    int WEB_SOCKET_INQUIRY_CLOSE_MESSAGE = 110;

    /**
     * 修改原始询价消息
     */
    int WEB_SOCKET_UPDATE_BOM_MESSAGE = 120;

    /**
     * 催促跟进
     * */
    int WEB_SOCKET_PRESS_BUSINESS_MESSAGE = 130;

    /**
     * SaaS上传询价单，消息通知bom助理角色人员
     * */
    int WEB_SOCKET_SAASUPLOAD_MESSAGE = 140;
    /**
     * SaaS采购整个bom报价完成
     */
    int WEB_SOCKET_PRUCHASEQUOTATIONCOMPLETE_MESSAGE = 150;

    /**
     * SaaS报价给客户
     */
    int WEB_SOCKET_PRUCHAS_EQUOTATION_2CUSTOMER_MESSAGE = 160;

    /**
     * 客户取消询价
     */
    int WEB_SOCKET_CUSTOMER_CANCEL_MESSAGE = 170;
    /**
     * bom 助理取消询价
     */
    int WEB_SOCKET_SAAS_CANCELED_BYASSISTANT_MESSAGE = 180;

    /**
     * bom 助理取消询价
     */
    int WEB_SOCKET_HOLIDAY_DUE_MESSAGE = 190;

    /**
     * 定价采购员修改建议售价
     */
    int WEB_SOCKET_UPDATE_ADVICE_PRICE_MESSAGE = 200;

    /**
     * 购物车催回复
     */
    int WEB_SOCKET_SHOPPING_CART_ITEM_REPLY_MESSAGE = 210;

    /**
     * 预处理超15分钟未处理提醒
     * */
    int WEB_SOCKET_PREPRO_OVER_TIME_MESSAGE = 220;

    /**
     * SaaS询价单超时未分配
     * */
    int WEB_SOCKET_SAAS_INQUIRY_OVER_TIME_MESSAGE = 230;

    /**
     * 采购报价用时超2.5小时
     * */
    int WEB_SOCKET_PURCHASE_QUOTATION_OVER_TIME_MESSAGE = 240;

    /**
     * SaaS采购报价完成10分钟后还没报价给客户
     * */
    int WEB_SOCKET_QUOTATION_CUSTOMER_OVER_TIME_MESSAGE = 250;

    /**
     * FBA有新的补货需求提醒
     * */
    int WEB_SOCKET_FBA_REPLENISHMENT_REQUEST_MESSAGE = 260;

    /**
     * 报价时效变更消息提醒
     * */
    int WEB_SOCKET_QUOTATION_LIMITATION_CHANGE_MESSAGE = 270;
    //有新的询盘待预处理
    int WEB_SOCKET_NEW_INQUIRY_MESSAGE = 280;

    static Map<Integer, String> PACKAGE_TYPE_MAP = new HashMap<>();

    static Map<Integer, String> getBomWebSocketPackageTypeConstantMap(){
        if(PACKAGE_TYPE_MAP.size() <= 0){
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PACKAGE_COMMON_MESSAGE, "普通文本包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PACKAGE_TYPE_MESSAGE, "系统支持websocket包类型消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_APP_INFORMATION_MESSAGE, "app信息消息包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PING_MESSAGE, "心跳检测测试消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PONG_MESSAGE, "心跳检测响应消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_SYSTEM_MATCH_MESSAGE, "系统匹配");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_UNREAD_MESSAGE_COUNT_MESSAGE, "未读消息统计包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_NOTIFICATION_MESSAGE, "通知消息包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_COMMENT_NOTIFICATION_MESSAGE, "评论消息包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_BUSINESS_REQUEST_PURCHASE_QUOTE_NOTIFICATION_MESSAGE, "业务请求采购报价消息包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PURCHASE_FINISHED_QUOTATION_MESSAGE, "采购报价给销售消息包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_BOM_INFORMATION_COMPLEMENT_REQUEST_MESSAGE, "信息补充请求消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_QUOTATION_UN_COMPLETE_REMIND_MESSAGE, "报价未完成提醒");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_INQUIRY_CLOSE_MESSAGE, "询价关闭消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_UPDATE_BOM_MESSAGE, "修改原始询价消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PRESS_BUSINESS_MESSAGE,"催促跟进包");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_SAASUPLOAD_MESSAGE,"SaaS上传询价单消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PRUCHASEQUOTATIONCOMPLETE_MESSAGE,"SaaS采购整个bom报价完成");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PRUCHAS_EQUOTATION_2CUSTOMER_MESSAGE,"SaaS报价给客户");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_CUSTOMER_CANCEL_MESSAGE,"客户取消询价");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_SAAS_CANCELED_BYASSISTANT_MESSAGE,"bom助理取消询价 ");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_HOLIDAY_DUE_MESSAGE,"更新法定节假日消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_UPDATE_ADVICE_PRICE_MESSAGE,"定价采购员修改建议售价消息");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_SHOPPING_CART_ITEM_REPLY_MESSAGE,"购物车催回复");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PREPRO_OVER_TIME_MESSAGE,"预处理超15分钟未处理提醒");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_SAAS_INQUIRY_OVER_TIME_MESSAGE,"SaaS询价单超时未分配");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_PURCHASE_QUOTATION_OVER_TIME_MESSAGE,"采购报价用时超2.5小时");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_QUOTATION_CUSTOMER_OVER_TIME_MESSAGE,"采购报价完成10分钟后还没报价给客户");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_FBA_REPLENISHMENT_REQUEST_MESSAGE,"FBA有新的补货需求提醒");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_QUOTATION_LIMITATION_CHANGE_MESSAGE,"报价时效变更消息提醒");
            PACKAGE_TYPE_MAP.put(WEB_SOCKET_NEW_INQUIRY_MESSAGE,"WEB_SOCKET_NEW_INQUIRY_MESSAGE");
        }
        return PACKAGE_TYPE_MAP;
    }

}
